1 from tkinter import*
2 import tkinter.messagebox
3 import random
4 import Std_info_BackEnd

5 from
tkinter import ttk
6
7 class
Std_info():
8        def __init__(self, master):
9               self.master = master
10               self.master.title(
'School Management System/Student Information')
11               self.master.geometry(
'1350x750')
12               self.master.config(bg =
'lightblue')
13               
14               def information():
15               #========================================================Variables=====================================================================
16                      self.name = StringVar()
17                      self.fname = StringVar()
18                      self.mname = StringVar()
19                      self.address = StringVar()
20                      self.mobno = StringVar()
21                      self.email = StringVar()
22                      self.dob = StringVar()
23                      self.gender = StringVar()
24                      
25
26
27                #==========================================================Functions====================================================================
28                      def StudentRec(
event):
29                             
try:
30                                    
global selected_tuple
31                                    
32                                    index = self.listbox.curselection()[
0]
33                                    selected_tuple = self.listbox.
get(index)
34
35                                    self.Entry_name.delete(
0, END)
36                                    self.Entry_name.insert(END, selected_tuple[
1])
37                                    self.Entry_fname.delete(
0, END)
38                                    self.Entry_fname.insert(END, selected_tuple[
2])
39                                    self.Entry_mname.delete(
0, END)
40                                    self.Entry_mname.insert(END, selected_tuple[
3])
41                                    self.Entry_address.delete(
0, END)
42                                    self.Entry_address.insert(END, selected_tuple[
4])
43                                    self.Entry_mobno.delete(
0, END)
44                                    self.Entry_mobno.insert(END, selected_tuple[
5])
45                                    self.Entry_emailID.delete(
0, END)
46                                    self.Entry_emailID.insert(END, selected_tuple[
6])
47                                    self.Entry_dob.delete(
0, END)
48                                    self.Entry_dob.insert(END, selected_tuple[
7])
49                                    self.Entry_gender.delete(
0, END)
50                                    self.Entry_gender.insert(END, selected_tuple[
8])
51                             except IndexError:
52                                    pass
53
54
55                      def Add():
56                             
if(len(self.name.get()) != 0):
57                                Std_info_BackEnd.insert(self.name.
get(), self.fname.get(), self.mname.get(), self.address.get(), self.mobno.get(), self.email.get(), self.dob.get(), \
58                                                        self.gender.
get())
59                                self.listbox.delete(
0, END)
60                                self.listbox.insert(END, (self.name.
get(), self.fname.get(), self.mname.get(), self.address.get(), self.mobno.get(), self.email.get(), self.dob.get(), \
61                                                        self.gender.
get()))
62
63                      def Display():
64                                self.listbox.delete(
0, END)
65                                
for row in Std_info_BackEnd.view():
66                                       self.listbox.insert(END, row, str(
' '))
67
68
69                      def Exit():
70                             Exit = tkinter.messagebox.askyesno(
"Login System", "Confirm if you want to Exit")
71                             
if Exit > 0:
72                                    self.master.destroy()
73                                    
return
74                             
75
76                      def Reset():
77                             self.name.
set('')
78                             self.fname.
set('')
79                             self.mname.
set('')
80                             self.address.
set('')
81                             self.mobno.
set('')
82                             self.email.
set('')
83                             self.dob.
set('')
84                             self.gender.
set('')
85                             self.listbox.delete(
0, END)
86
87                      
88
89                      def Delete():
90                             
if(len(self.name.get()) != 0):
91                                Std_info_BackEnd.delete(selected_tuple[
0])
92                                Reset()
93                                Display()
94
95
96                      def Search():
97                             self.listbox.delete(
0, END)
98                             
for row in Std_info_BackEnd.search(self.name.get(), self.fname.get(), self.mname.get(), self.address.get(), self.mobno.get(), self.email.get(), self.dob.get(),self.gender.get()):
99                                    self.listbox.insert(END, row, str(
' '))
100                                    
101
102                      def Update():
103                             
if(len(self.name.get()) != 0):
104                                Std_info_BackEnd.delete(selected_tuple[
0])
105                             
if(len(self.name.get()) != 0):
106                                Std_info_BackEnd.insert(self.name.
get(), self.fname.get(), self.mname.get(), self.address.get(), self.mobno.get(), self.email.get(), self.dob.get(), \
107                                                        self.gender.
get())
108
109                                self.listbox.delete(
0, END)
110                                self.listbox.insert(END, (self.name.
get(), self.fname.get(), self.mname.get(), self.address.get(), self.mobno.get(), self.email.get(), self.dob.get(), \
111                                                        self.gender.
get()))
112                      
113
114
115                      #============================================================Frames=====================================================================
116
117                      self.Main_Frame = LabelFrame(self.master, width =
1300, height = 500, font = ('arial',20,'bold'), \
118                                                   bg =
'lightblue',bd = 15, relief = 'ridge')
119                      self.Main_Frame.grid(row =
0, column = 0, padx = 10, pady = 20)
120
121                      self.Frame_1 = LabelFrame(self.Main_Frame, width =
600, height = 400, font = ('arial',15,'bold'), \
122                                                relief =
'ridge', bd = 10, bg = 'lightblue', text = 'STUDENT INFORMATION ')
123                      self.Frame_1.grid(row =
1, column = 0, padx = 10)
124
125                      self.Frame_2 = LabelFrame(self.Main_Frame, width =
750, height = 400, font = ('arial',15,'bold'), \
126                                                relief =
'ridge', bd = 10, bg = 'lightblue', text = 'STUDENT DATABASE')
127                      self.Frame_2.grid(row =
1, column = 1, padx = 5)
128                      
129                      self.Frame_3 = LabelFrame(self.master, width =
1200, height = 100, font = ('arial',10,'bold'), \
130                                                bg =
'lightblue', relief = 'ridge', bd = 13)
131                      self.Frame_3.grid(row =
2, column = 0, pady = 10)
132
133
134                      
135                      #========================================================Labels of Frame_1========================================================
136                      self.Label_name = Label(self.Frame_1, text =
'Name', font = ('arial',20,'bold'), bg = 'lightblue')
137                      self.Label_name.grid(row =
0, column = 0, sticky = W, padx = 20, pady = 10)
138                      self.Label_fname = Label(self.Frame_1, text =
'Father Name', font = ('arial',20,'bold'), bg = 'lightblue')
139                      self.Label_fname.grid(row =
1, column = 0, sticky = W, padx = 20)
140                      self.Label_mname = Label(self.Frame_1, text =
'Mother Name', font = ('arial',20,'bold'), bg = 'lightblue')
141                      self.Label_mname.grid(row =
2, column = 0, sticky = W, padx = 20)
142                      self.Label_address = Label(self.Frame_1, text =
'Address', font = ('arial',20,'bold'), bg = 'lightblue')
143                      self.Label_address.grid(row =
3, column = 0, sticky = W, padx = 20)
144                      self.Label_mobno = Label(self.Frame_1, text =
'Mobile Number', font = ('arial',20,'bold'), bg = 'lightblue')
145                      self.Label_mobno.grid(row =
4, column = 0, sticky = W, padx = 20)
146                      self.Label_emailID = Label(self.Frame_1, text =
'Email ID', font = ('arial',20,'bold'), bg = 'lightblue')
147                      self.Label_emailID.grid(row =
5, column = 0, sticky = W, padx = 20)
148                      self.Label_dob = Label(self.Frame_1, text =
'Date of Birth', font = ('arial',20,'bold'), bg = 'lightblue')
149                      self.Label_dob.grid(row =
6, column = 0, sticky = W, padx = 20)
150                      self.Label_gender = Label(self.Frame_1, text =
'Gender', font = ('arial',20,'bold'), bg = 'lightblue')
151                      self.Label_gender.grid(row =
7, column = 0, sticky = W, padx = 20, pady = 10)
152
153
154                      #========================================================Entries of Frame_1========================================================
155                      self.Entry_name = Entry(self.Frame_1, font = (
'arial',17,'bold'), textvariable = self.name)
156                      self.Entry_name.grid(row =
0, column = 1, padx = 10, pady = 5)
157                      self.Entry_fname = Entry(self.Frame_1, font = (
'arial',17,'bold'), textvariable = self.fname)
158                      self.Entry_fname.grid(row =
1, column = 1, padx = 10, pady = 5)
159                      self.Entry_mname = Entry(self.Frame_1, font = (
'arial',17,'bold'), textvariable = self.mname)
160                      self.Entry_mname.grid(row =
2, column = 1, padx = 10, pady = 5)
161                      self.Entry_address = Entry(self.Frame_1, font = (
'arial',17,'bold'), textvariable = self.address)
162                      self.Entry_address.grid(row =
3, column = 1, padx = 10, pady = 5)
163                      self.Entry_mobno = Entry(self.Frame_1, font = (
'arial',17,'bold'), textvariable = self.mobno)
164                      self.Entry_mobno.grid(row =
4, column = 1, padx = 10, pady = 5)
165                      self.Entry_emailID = Entry(self.Frame_1, font = (
'arial',17,'bold'), textvariable = self.email)
166                      self.Entry_emailID.grid(row =
5, column = 1, padx = 10, pady = 5)
167                      self.Entry_dob = Entry(self.Frame_1, font = (
'arial',17,'bold'), textvariable = self.dob)
168                      self.Entry_dob.grid(row =
6, column = 1, padx = 10, pady = 5)
169                      self.Entry_gender = ttk.Combobox(self.Frame_1, values = (
' ','Male','Female','Others'),\
170                                                       font = (
'arial',17,'bold'), textvariable = self.gender, width = 19)
171                      self.Entry_gender.grid(row =
7, column = 1, padx = 10, pady = 5)
172
173
174
175
176                      #========================================================Buttons of self.Frame_3=========================================================
177                      self.btnSave = Button(self.Frame_3, text =
'SAVE', font = ('arial',17,'bold'), width = 8, command = Add)
178                      self.btnSave.grid(row =
0, column = 0, padx = 10, pady = 10)
179                      self.btnDisplay = Button(self.Frame_3, text =
'DISPLAY', font = ('arial',17,'bold'), width = 8, command = Display)
180                      self.btnDisplay.grid(row =
0, column = 1, padx = 10, pady = 10)
181                      self.btnReset = Button(self.Frame_3, text =
'RESET', font = ('arial',17,'bold'), width = 8, command = Reset)
182                      self.btnReset.grid(row =
0, column = 2, padx = 10, pady = 10)
183                      self.btnUpdate = Button(self.Frame_3, text =
'UPDATE', font = ('arial',17,'bold'), width = 8, command = Update)
184                      self.btnUpdate.grid(row =
0, column = 3, padx = 10, pady = 10)
185                      self.btnDelete = Button(self.Frame_3, text =
'DELETE', font = ('arial',17,'bold'), width = 8, command = Delete)
186                      self.btnDelete.grid(row =
0, column = 4, padx = 10, pady = 10)
187                      self.btnSearch = Button(self.Frame_3, text =
'SEARCH', font = ('arial',17,'bold'), width = 8, command = Search )
188                      self.btnSearch.grid(row =
0, column = 5, padx = 10, pady = 10)
189                      self.btnExit = Button(self.Frame_3, text =
'EXIT', font = ('arial',17,'bold'), width = 8, command = Exit)
190                      self.btnExit.grid(row =
0, column = 6, padx = 10, pady = 10)
191
192
193
194                      #===============================================List Box and self.scrollbar========================================================
195                      self.scrollbar = Scrollbar(self.Frame_2)
196                      self.scrollbar.grid(row =
0, column = 1, sticky = 'ns')
197
198                      self.listbox = Listbox(self.Frame_2, width =
75, height = 20 , font = ('arial',12,'bold'))
199                      self.listbox.bind(
'<<ListboxSelect>>', StudentRec)
200                      self.listbox.grid(row =
0, column = 0)
201                      self.scrollbar.config(command = self.listbox.yview)
202                             
203               information()
204                      
205
206 root = Tk()
207 obj = Std_info(root)
208 root.mainloop()


Gõ tìm kiếm nhanh...